package com.s63.appinfo.pojo;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 
 * @TableName app_info
 */
public class AppInfo implements Serializable {
    /**
     * 主键id
     */
    private Long id;

    /**
     * 软件名称
     */
    private String softwareName;

    /**
     * APK名称（唯一）
     */
    private String APKName;

    /**
     * 支持ROM
     */
    private String supportROM;

    /**
     * 界面语言
     */
    private String interfaceLanguage;

    /**
     * 软件大小（单位：M）
     */
    private BigDecimal softwareSize;

    /**
     * 更新日期
     */
    private Date updateDate;

    /**
     * 开发者id（来源于：dev_user表的开发者id）
     */
    private Long devId;

    /**
     * 应用简介
     */
    private String appInfo;

    /**
     * 状态（来源于：data_dictionary，1 待审核 2 审核通过 3 审核不通过 4 已上架 5 已下架）
     */
    private Long status;

    /**
     * 上架时间
     */
    private Date onSaleDate;

    /**
     * 下架时间
     */
    private Date offSaleDate;

    /**
     * 所属平台（来源于：data_dictionary，1 手机 2 平板 3 通用）
     */
    private Long flatformId;

    /**
     * 所属三级分类（来源于：data_dictionary）
     */
    private Long categoryLevel3;

    /**
     * 下载量（单位：次）
     */
    private Long downloads;

    /**
     * 创建者（来源于dev_user开发者信息表的用户id）
     */
    private Long createdBy;

    /**
     * 创建时间
     */
    private Date creationDate;

    /**
     * 更新者（来源于dev_user开发者信息表的用户id）
     */
    private Long modifyBy;

    /**
     * 最新更新时间
     */
    private Date modifyDate;

    /**
     * 所属一级分类（来源于：data_dictionary）
     */
    private Long categoryLevel1;

    /**
     * 所属二级分类（来源于：data_dictionary）
     */
    private Long categoryLevel2;

    /**
     * LOGO图片url路径
     */
    private String logoPicPath;

    /**
     * LOGO图片的服务器存储路径
     */
    private String logoLocPath;

    /**
     * 最新的版本id
     */
    private Long versionId;

    private String categoryName;

    /**
     * 管理员需要显示开发者名称
     */
    private String devName;

    private static final long serialVersionUID = 1L;

    public String getDevName() {
        return devName;
    }

    public void setDevName(String devName) {
        this.devName = devName;
    }

    public String getCategoryName() {
        return categoryName;
    }

    public void setCategoryName(String categoryName) {
        this.categoryName = categoryName;
    }

    /**
     * 主键id
     */
    public Long getId() {
        return id;
    }

    /**
     * 主键id
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * 软件名称
     */
    public String getSoftwareName() {
        return softwareName;
    }

    /**
     * 软件名称
     */
    public void setSoftwareName(String softwareName) {
        this.softwareName = softwareName;
    }

    /**
     * APK名称（唯一）
     */
    public String getAPKName() {
        return APKName;
    }

    /**
     * APK名称（唯一）
     */
    public void setAPKName(String APKName) {
        this.APKName = APKName;
    }

    /**
     * 支持ROM
     */
    public String getSupportROM() {
        return supportROM;
    }

    /**
     * 支持ROM
     */
    public void setSupportROM(String supportROM) {
        this.supportROM = supportROM;
    }

    /**
     * 界面语言
     */
    public String getInterfaceLanguage() {
        return interfaceLanguage;
    }

    /**
     * 界面语言
     */
    public void setInterfaceLanguage(String interfaceLanguage) {
        this.interfaceLanguage = interfaceLanguage;
    }

    /**
     * 软件大小（单位：M）
     */
    public BigDecimal getSoftwareSize() {
        return softwareSize;
    }

    /**
     * 软件大小（单位：M）
     */
    public void setSoftwareSize(BigDecimal softwareSize) {
        this.softwareSize = softwareSize;
    }

    /**
     * 更新日期
     */
    public Date getUpdateDate() {
        return updateDate;
    }

    /**
     * 更新日期
     */
    public void setUpdateDate(Date updateDate) {
        this.updateDate = updateDate;
    }

    /**
     * 开发者id（来源于：dev_user表的开发者id）
     */
    public Long getDevId() {
        return devId;
    }

    /**
     * 开发者id（来源于：dev_user表的开发者id）
     */
    public void setDevId(Long devId) {
        this.devId = devId;
    }

    /**
     * 应用简介
     */
    public String getAppInfo() {
        return appInfo;
    }

    /**
     * 应用简介
     */
    public void setAppInfo(String appInfo) {
        this.appInfo = appInfo;
    }

    /**
     * 状态（来源于：data_dictionary，1 待审核 2 审核通过 3 审核不通过 4 已上架 5 已下架）
     */
    public Long getStatus() {
        return status;
    }

    /**
     * 状态（来源于：data_dictionary，1 待审核 2 审核通过 3 审核不通过 4 已上架 5 已下架）
     */
    public void setStatus(Long status) {
        this.status = status;
    }

    /**
     * 上架时间
     */
    public Date getOnSaleDate() {
        return onSaleDate;
    }

    /**
     * 上架时间
     */
    public void setOnSaleDate(Date onSaleDate) {
        this.onSaleDate = onSaleDate;
    }

    /**
     * 下架时间
     */
    public Date getOffSaleDate() {
        return offSaleDate;
    }

    /**
     * 下架时间
     */
    public void setOffSaleDate(Date offSaleDate) {
        this.offSaleDate = offSaleDate;
    }

    /**
     * 所属平台（来源于：data_dictionary，1 手机 2 平板 3 通用）
     */
    public Long getFlatformId() {
        return flatformId;
    }

    /**
     * 所属平台（来源于：data_dictionary，1 手机 2 平板 3 通用）
     */
    public void setFlatformId(Long flatformId) {
        this.flatformId = flatformId;
    }

    /**
     * 所属三级分类（来源于：data_dictionary）
     */
    public Long getCategoryLevel3() {
        return categoryLevel3;
    }

    /**
     * 所属三级分类（来源于：data_dictionary）
     */
    public void setCategoryLevel3(Long categoryLevel3) {
        this.categoryLevel3 = categoryLevel3;
    }

    /**
     * 下载量（单位：次）
     */
    public Long getDownloads() {
        return downloads;
    }

    /**
     * 下载量（单位：次）
     */
    public void setDownloads(Long downloads) {
        this.downloads = downloads;
    }

    /**
     * 创建者（来源于dev_user开发者信息表的用户id）
     */
    public Long getCreatedBy() {
        return createdBy;
    }

    /**
     * 创建者（来源于dev_user开发者信息表的用户id）
     */
    public void setCreatedBy(Long createdBy) {
        this.createdBy = createdBy;
    }

    /**
     * 创建时间
     */
    public Date getCreationDate() {
        return creationDate;
    }

    /**
     * 创建时间
     */
    public void setCreationDate(Date creationDate) {
        this.creationDate = creationDate;
    }

    /**
     * 更新者（来源于dev_user开发者信息表的用户id）
     */
    public Long getModifyBy() {
        return modifyBy;
    }

    /**
     * 更新者（来源于dev_user开发者信息表的用户id）
     */
    public void setModifyBy(Long modifyBy) {
        this.modifyBy = modifyBy;
    }

    /**
     * 最新更新时间
     */
    public Date getModifyDate() {
        return modifyDate;
    }

    /**
     * 最新更新时间
     */
    public void setModifyDate(Date modifyDate) {
        this.modifyDate = modifyDate;
    }

    /**
     * 所属一级分类（来源于：data_dictionary）
     */
    public Long getCategoryLevel1() {
        return categoryLevel1;
    }

    /**
     * 所属一级分类（来源于：data_dictionary）
     */
    public void setCategoryLevel1(Long categoryLevel1) {
        this.categoryLevel1 = categoryLevel1;
    }

    /**
     * 所属二级分类（来源于：data_dictionary）
     */
    public Long getCategoryLevel2() {
        return categoryLevel2;
    }

    /**
     * 所属二级分类（来源于：data_dictionary）
     */
    public void setCategoryLevel2(Long categoryLevel2) {
        this.categoryLevel2 = categoryLevel2;
    }

    /**
     * LOGO图片url路径
     */
    public String getLogoPicPath() {
        return logoPicPath;
    }

    /**
     * LOGO图片url路径
     */
    public void setLogoPicPath(String logoPicPath) {
        this.logoPicPath = logoPicPath;
    }

    /**
     * LOGO图片的服务器存储路径
     */
    public String getLogoLocPath() {
        return logoLocPath;
    }

    /**
     * LOGO图片的服务器存储路径
     */
    public void setLogoLocPath(String logoLocPath) {
        this.logoLocPath = logoLocPath;
    }

    /**
     * 最新的版本id
     */
    public Long getVersionId() {
        return versionId;
    }

    /**
     * 最新的版本id
     */
    public void setVersionId(Long versionId) {
        this.versionId = versionId;
    }

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        AppInfo other = (AppInfo) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
            && (this.getSoftwareName() == null ? other.getSoftwareName() == null : this.getSoftwareName().equals(other.getSoftwareName()))
            && (this.getAPKName() == null ? other.getAPKName() == null : this.getAPKName().equals(other.getAPKName()))
            && (this.getSupportROM() == null ? other.getSupportROM() == null : this.getSupportROM().equals(other.getSupportROM()))
            && (this.getInterfaceLanguage() == null ? other.getInterfaceLanguage() == null : this.getInterfaceLanguage().equals(other.getInterfaceLanguage()))
            && (this.getSoftwareSize() == null ? other.getSoftwareSize() == null : this.getSoftwareSize().equals(other.getSoftwareSize()))
            && (this.getUpdateDate() == null ? other.getUpdateDate() == null : this.getUpdateDate().equals(other.getUpdateDate()))
            && (this.getDevId() == null ? other.getDevId() == null : this.getDevId().equals(other.getDevId()))
            && (this.getAppInfo() == null ? other.getAppInfo() == null : this.getAppInfo().equals(other.getAppInfo()))
            && (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(other.getStatus()))
            && (this.getOnSaleDate() == null ? other.getOnSaleDate() == null : this.getOnSaleDate().equals(other.getOnSaleDate()))
            && (this.getOffSaleDate() == null ? other.getOffSaleDate() == null : this.getOffSaleDate().equals(other.getOffSaleDate()))
            && (this.getFlatformId() == null ? other.getFlatformId() == null : this.getFlatformId().equals(other.getFlatformId()))
            && (this.getCategoryLevel3() == null ? other.getCategoryLevel3() == null : this.getCategoryLevel3().equals(other.getCategoryLevel3()))
            && (this.getDownloads() == null ? other.getDownloads() == null : this.getDownloads().equals(other.getDownloads()))
            && (this.getCreatedBy() == null ? other.getCreatedBy() == null : this.getCreatedBy().equals(other.getCreatedBy()))
            && (this.getCreationDate() == null ? other.getCreationDate() == null : this.getCreationDate().equals(other.getCreationDate()))
            && (this.getModifyBy() == null ? other.getModifyBy() == null : this.getModifyBy().equals(other.getModifyBy()))
            && (this.getModifyDate() == null ? other.getModifyDate() == null : this.getModifyDate().equals(other.getModifyDate()))
            && (this.getCategoryLevel1() == null ? other.getCategoryLevel1() == null : this.getCategoryLevel1().equals(other.getCategoryLevel1()))
            && (this.getCategoryLevel2() == null ? other.getCategoryLevel2() == null : this.getCategoryLevel2().equals(other.getCategoryLevel2()))
            && (this.getLogoPicPath() == null ? other.getLogoPicPath() == null : this.getLogoPicPath().equals(other.getLogoPicPath()))
            && (this.getLogoLocPath() == null ? other.getLogoLocPath() == null : this.getLogoLocPath().equals(other.getLogoLocPath()))
            && (this.getVersionId() == null ? other.getVersionId() == null : this.getVersionId().equals(other.getVersionId()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getSoftwareName() == null) ? 0 : getSoftwareName().hashCode());
        result = prime * result + ((getAPKName() == null) ? 0 : getAPKName().hashCode());
        result = prime * result + ((getSupportROM() == null) ? 0 : getSupportROM().hashCode());
        result = prime * result + ((getInterfaceLanguage() == null) ? 0 : getInterfaceLanguage().hashCode());
        result = prime * result + ((getSoftwareSize() == null) ? 0 : getSoftwareSize().hashCode());
        result = prime * result + ((getUpdateDate() == null) ? 0 : getUpdateDate().hashCode());
        result = prime * result + ((getDevId() == null) ? 0 : getDevId().hashCode());
        result = prime * result + ((getAppInfo() == null) ? 0 : getAppInfo().hashCode());
        result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode());
        result = prime * result + ((getOnSaleDate() == null) ? 0 : getOnSaleDate().hashCode());
        result = prime * result + ((getOffSaleDate() == null) ? 0 : getOffSaleDate().hashCode());
        result = prime * result + ((getFlatformId() == null) ? 0 : getFlatformId().hashCode());
        result = prime * result + ((getCategoryLevel3() == null) ? 0 : getCategoryLevel3().hashCode());
        result = prime * result + ((getDownloads() == null) ? 0 : getDownloads().hashCode());
        result = prime * result + ((getCreatedBy() == null) ? 0 : getCreatedBy().hashCode());
        result = prime * result + ((getCreationDate() == null) ? 0 : getCreationDate().hashCode());
        result = prime * result + ((getModifyBy() == null) ? 0 : getModifyBy().hashCode());
        result = prime * result + ((getModifyDate() == null) ? 0 : getModifyDate().hashCode());
        result = prime * result + ((getCategoryLevel1() == null) ? 0 : getCategoryLevel1().hashCode());
        result = prime * result + ((getCategoryLevel2() == null) ? 0 : getCategoryLevel2().hashCode());
        result = prime * result + ((getLogoPicPath() == null) ? 0 : getLogoPicPath().hashCode());
        result = prime * result + ((getLogoLocPath() == null) ? 0 : getLogoLocPath().hashCode());
        result = prime * result + ((getVersionId() == null) ? 0 : getVersionId().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", softwareName=").append(softwareName);
        sb.append(", APKName=").append(APKName);
        sb.append(", supportROM=").append(supportROM);
        sb.append(", interfaceLanguage=").append(interfaceLanguage);
        sb.append(", softwareSize=").append(softwareSize);
        sb.append(", updateDate=").append(updateDate);
        sb.append(", devId=").append(devId);
        sb.append(", appInfo=").append(appInfo);
        sb.append(", status=").append(status);
        sb.append(", onSaleDate=").append(onSaleDate);
        sb.append(", offSaleDate=").append(offSaleDate);
        sb.append(", flatformId=").append(flatformId);
        sb.append(", categoryLevel3=").append(categoryLevel3);
        sb.append(", downloads=").append(downloads);
        sb.append(", createdBy=").append(createdBy);
        sb.append(", creationDate=").append(creationDate);
        sb.append(", modifyBy=").append(modifyBy);
        sb.append(", modifyDate=").append(modifyDate);
        sb.append(", categoryLevel1=").append(categoryLevel1);
        sb.append(", categoryLevel2=").append(categoryLevel2);
        sb.append(", logoPicPath=").append(logoPicPath);
        sb.append(", logoLocPath=").append(logoLocPath);
        sb.append(", versionId=").append(versionId);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}